/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package grafogen;

import java.io.Serializable;
import java.util.HashMap;

/**
 *
 * @author laura
 */
public class Arista implements Serializable {
    private Integer codigoAri;
    private Nodo origen, destino;       
    private HashMap<String, Object> atributos;
    
    /**
     * Método constructor de la clase Arista. Permite crear un objeto arista
     * @param codigo               código de la arista
     *
     * @param origen
     *                              nodo origen
     * @param destino
     *                              nodo destino
     */
    public Arista(Integer codigoAri, Nodo origen, Nodo destino) {
            this.codigoAri = codigoAri;
            this.origen = origen;
            this.destino = destino;
            atributos = new HashMap<String, Object>();
    }       
        

    /**
     * @return the codigoAri
     */
    public Integer getCodigoAri() {
        return codigoAri;
    }

    /**
     * @param codigoAri the codigoAri to set
     */
    public void setCodigoAri(Integer codigoAri) {
        this.codigoAri = codigoAri;
    }

    /**
     * @return the origen
     */
    public Nodo getOrigen() {
        return origen;
    }

    /**
     * @param origen the origen to set
     */
    public void setOrigen(Nodo origen) {
        this.origen = origen;
    }

    /**
     * @return the destino
     */
    public Nodo getDestino() {
        return destino;
    }

    /**
     * @param destino the destino to set
     */
    public void setDestino(Nodo destino) {
        this.destino = destino;
    }

    /**
     * @return the atributos
     */
    public HashMap<String, Object> getAtributos() {
        return atributos;
    }

    /**
     * @param atributos the atributos to set
     */
    public void setAtributos(HashMap<String, Object> atributos) {
        this.atributos = atributos;
    }
    
    /**
     * Método para agregar un atributo a la colección de atributos de la arista
     * @param nombreAtributo
     * @param valor
     */
    public void agregarAtributo(String nombreAtributo, Object valor) {
            atributos.put(nombreAtributo, valor);
    }


    public String toString(){
        return this.getOrigen()+"->"+this.getDestino();
    }
}
